ts
export function modifyConfig(config: Config): Config {
// 自定义上下文提供者
config.contextProviders?.push({
title: "siyuan",
type: "query",
async getContextItems(query, extras) {
const apiKey = (config as any).siyuan.apiKey;
console.log("[query, extras]", query, extras);
const data = {
query: query,
method: 0,
types: {
audioBlock: true,
blockquote: true,
codeBlock: true,
databaseBlock: true,
document: true,
embedBlock: true,
heading: true,
htmlBlock: true,
iframeBlock: true,
list: false,
listItem: false,
mathBlock: true,
paragraph: true,
superBlock: true,
table: false,
videoBlock: true,
widgetBlock: true,
},
paths: [],
groupBy: 0,
orderBy: 0,
page: 1,
reqId: Date.now(),
};
console.log("[data]", data);
return await fetch("http://127.0.0.1:6806/api/search/fullTextSearchBlock", {
headers: {
accept: "*/*",
"accept-language": "zh-CN",
"content-type": "text/plain;charset=UTF-8",
Authorization: `Token ${apiKey}`,
},
referrerPolicy: "strict-origin-when-cross-origin",
body: JSON.stringify(data),
method: "POST",
mode: "cors",
credentials: "include",
})
.then((r) => r.json())
.then((r) => {
const blocks = r.data.blocks as {
id: "20210521144338-li21s3u";
fcontent: "ai测试";
content: "ai测试";
name: "";
}[];
console.log("[blocks]", blocks);
return blocks.map((block) => {
return {
name: `${block.name} - ${block.id}`,
description: block.fcontent.slice(0, 20),
content: block.fcontent,
uri: {
type: "url" as const,
value: `siyuan://blocks/${block.id}`,
},
};
});
})
.catch((e: Error) => {
return [
{
name: `request error`,
description: "请求出错",
content: String(e),
},
];
});
},
});
return config;
}